A virtual machine is the representation of a physical machine by software. A virtual machine has its own set of virtual hardware (e.g., random access memory (RAM), central processing unit (CPU), network interface card (NIC), hard disks, etc.) upon which an operating system and applications are loaded. The virtual machine operating system sees a consistent, normalized set of hardware regardless of the actual physical hardware components. In a virtualized environment, a physical host machine (e.g., a computer) runs virtualization software such as a hypervisor and abstracts physical hardware (e.g., processors, memory, storage and networking resources, etc.) to be provisioned to one or more virtual machines. Storage on a storage system is mapped to the physical host machine such that the physical host machine can use the storage.
A guest operating system (e.g., Windows™, etc.) may be installed on each of the virtual machines. The virtualization software presents the physical hardware of the host machine as virtual hardware to the guest operating system and applications running in the guest operating system. A user may access the virtual machine to perform computing tasks as if it were a physical machine. For example, a user may want to rapidly clone a file, or data object.
The storage system includes an operating system, such as NetApp® Data ONTAP™. The storage system operating system provides single instance storage (sis) clone functionality, which can be used to create a clone of an entire Logical Unit Number (LUN). The storage system operating system can provide the capability to perform sub LUN cloning by providing as input a logical block address (LBA) range to be cloned and a block range of the destination to store the clone. However, when the entity to be cloned is a file present on a file system such as New Technology File System (NTFS), the LBA range of the file is not known. Furthermore, the cloned blocks in the destination are not recognized as a file by the destination NTFS.
Rapid cloning capabilities provided by virtual machine managers such as Windows System Center Virtual Machine Manager® (SCVMM) use Windows Background Transfer Service® (BITS) technology and do not provide significant performance gain over traditional file copy. Moreover, virtual machine managers' rapid cloning is time intensive and uses a significant amount of memory.